﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Loja.Banco;
using Loja.Controles.Aplicação;
using Loja.Aplicação;
using System.Collections;
using Loja.Padrao;

namespace Loja.Telas
{
    public partial class ConsultaProdutos : PadraoConsulta
    {
        private Controle controle;

        public Object produto;

        public Int32 qtdadeProduto;

        public ConsultaProdutos(Controle controle, Boolean desabilita)
        {
            this.controle = controle;
            InitializeComponent();
            if (desabilita)
                btEscolher.Enabled = true;
            else
                btEscolher.Enabled = false;            
        }

        public ConsultaProdutos()
        {
            InitializeComponent();
        }

        new private void btnNovo_Click(object sender, EventArgs e)
        {
            FormProduto form = new FormProduto(new Controle(), 0);
            form.ShowDialog(this);
            Pesquisar();
        }

        private void btnPesquisar_Click(object sender, EventArgs e)
        {
            Pesquisar();
        }

        private void btnAbrir_Click(object sender, EventArgs e)
        {
            Abrir();        
        }

        public void Pesquisar()
        {
            if (txtDescricao.Text != "")
            {
                var produto = controle.BuscaProdutoCampo(txtDescricao.Text);

                if (produto == null)
                {

                    dgDados.DataSource = null;

                }
                else
                {
                    dgDados.DataSource = produto;
                }
            }
            else
            {
                var produto = controle.BuscaProduto();
                dgDados.DataSource = produto;
            }
            dgDados.Columns[0].HeaderText = "Codigo";
            dgDados.Columns["TipoProduto"].Visible = false;
            dgDados.Columns[2].Visible = false;
            dgDados.Columns[3].Visible = false;
            dgDados.Columns[4].Visible = false;
            dgDados.Columns[5].Visible = false;
            dgDados.Columns[6].Visible = false;
            dgDados.Columns[7].Visible = false;
            dgDados.Columns[8].Visible = false;
        }

        public void Abrir()
        {            
            try
            {              
                if (dgDados.CurrentRow.Cells["Produto_ID"].Value.ToString() != "")
                {
                    FormProduto c = new FormProduto(controle, Int32.Parse(dgDados.CurrentRow.Cells["Produto_ID"].Value.ToString()));
                    c.ShowDialog(this);
                    Pesquisar();
                }
                else
                    MessageBox.Show("Nenhum Produto Selecionado!");
            }
            catch
            {
                MessageBox.Show("Nenhum Produto Selecionado!");
            }
        }

        private void btEscolher_Click(object sender, EventArgs e)
        {
            try
            {
                if (dgDados.CurrentRow.Cells["Produto_ID"].Value.ToString() != "")
                {
                    produto = dgDados.CurrentRow.Cells["Produto_ID"].Value.ToString();
                    if (ValidaQtdProduto(Convert.ToInt32(Microsoft.VisualBasic.Interaction.InputBox("Informe a Quantidade COMPRADA", "Quantidade de COMPRA:", "1", 700, 500))))
                    {                        
                        this.Close();
                    }
                    else
                        MessageBox.Show("Quantidade informada invalida!");
                    //qtdadeProduto = Convert.ToInt32(Microsoft.VisualBasic.Interaction.InputBox("Informe a Quantidade COMPRADA", "Quantidade de COMPRA:", "1", 700, 500));                    
                }
            }
            catch
            {
                MessageBox.Show("Não foi possivel escolher o produto!");
            }
        }

        private void btnSair_Click_1(object sender, EventArgs e)
        {

        }

        private void btnExcluir_Click(object sender, EventArgs e)
        {
            DialogResult dialogo = new DialogResult();
            dialogo = MessageBox.Show("Deseja EXCLUIR o PRODUTO?", "Excluir Produto", MessageBoxButtons.YesNo);
            if (dialogo.ToString() == "Yes")
            {
                if (controle.DesativarProduto(dgDados.Rows[dgDados.CurrentRow.Index].DataBoundItem))              
                {
                    MessageBox.Show("Produto excluido com sucesso!");
                    Pesquisar();
                }
                else
                  MessageBox.Show("Problema ao excluir produto!");
            }
        }

        public Boolean ValidaQtdProduto(Int32 qtdade)
        {
            if (qtdade < 1)
                return false;
            else
            {
                qtdadeProduto = qtdade;
                return true;
            }
        }
    }
}
